#pragma once

#include <string>
#include <map>
#include "Singleton.h"
#include "HashedString.h"
#include "Pointer.h"
#include "Dator.h"

class Settings : public Singleton<Settings>
{
public:
	Settings();
	virtual ~Settings();

	void RegisterVariable(std::string name, Pointer<Dator> var);
	void setVariable(std::string &name, std::string &value, int bias = 0);

	void ParseSetting(std::string str);
	void ParseFile(std::string filename);
	
	std::string& getDirectory();
private:
	std::string m_baseDirectory;
	std::map<HashedString, Pointer<Dator>> m_settingsMap;
};